home *** CD-ROM | disk | FTP | other *** search
/ Magnum One / Magnum One (Mid-American Digital) (Disc Manufacturing).iso / d12 / asmbler.arc / COUNT.ASM < prev    next >
Assembly Source File  |  1988-11-19  |  2KB  |  72 lines

  1. INCLUDE UTIL.INC
  2.  
  3. ASSUME  CS:COUNTC,DS:COUNTC,ES:COUNTC,SS:COUNTC
  4. COUNTC  SEGMENT PARA PUBLIC 'CODE'
  5.  
  6.         ORG     100H
  7. COUNT:  XOR     BX,BX
  8.         MOV     CL,BYTE PTR [BX].UPA
  9.         XOR     CH,CH
  10.         LEA     DI,[BX+1].UPA
  11.         SCANPARAM DX,ERROR1
  12.         SCANPARAM BX,CNT1
  13.         JMP     ERROR1
  14. CNT1:   XOR     AL,AL
  15.         MOV     AH,3DH
  16.         INT     21H
  17.         JC      ERROR
  18.         MOV     BX,AX
  19.         CALL    COUNTUP
  20.         NORMALTERM
  21. ERROR1: MOV     AX,19
  22.         ERRORTERM
  23.  
  24.  
  25. ASSUME  CS:COUNTC,DS:COUNTC,ES:COUNTC,SS:COUNTC
  26. COUNTUP:
  27.         MOV     DX,OFFSET BUFFER
  28. CNT2:   MOV     CX,4096
  29.         MOV     AH,3FH
  30.         INT     21H
  31.         JNC     CNT5
  32.         JMP     ERROR
  33. CNT5:   ADD     LOCCNT,AX
  34.         ADC     HICCNT,0
  35.         MOV     CX,AX
  36.         MOV     SI,AX
  37.         MOV     DI,OFFSET BUFFER
  38.         MOV     AL,13
  39. CNT3:   REPNE   SCASB
  40.         JCXZ    CNT4
  41.         INC     LOLCNT
  42.         JMP     CNT3
  43. CNT4:   CMP     SI,4096
  44.         JE      CNT2
  45.         MOV     BX,01H
  46.         MOV     DX,OFFSET BLANKS
  47.         CALL    FWRITESTR
  48.         MOV     AX,LOLCNT
  49.         CALL    FWRITEINT
  50.         MOV     DX,OFFSET BLANKS
  51.         CALL    FWRITESTR
  52.         MOV     AX,LOCCNT
  53.         CALL    FWRITEINT
  54.         CALL    FWRITELN
  55.         RET
  56.  
  57.         MWRITESTR
  58.         MWRITEINT
  59.         MWRITELN
  60.  
  61.         EVEN
  62. LOCCNT  DW      0
  63. HICCNT  DW      0
  64. LOWCNT  DW      0
  65. LOLCNT  DW      0
  66.  
  67. BLANKS  DB      '    ',0
  68. BUFFER  DB
  69.  
  70. COUNTC  ENDS
  71.         END     COUNT
  72.